/* -*- c++ -*- */
/*
 * Copyright 2023 luxian.
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

#ifndef INCLUDED_CUSTOMMODULE_MY_QPSK_DEMOD_CB_IMPL_H
#define INCLUDED_CUSTOMMODULE_MY_QPSK_DEMOD_CB_IMPL_H

#include <gnuradio/customModule/my_qpsk_demod_cb.h>

namespace gr {
  namespace customModule {

    class my_qpsk_demod_cb_impl : public my_qpsk_demod_cb
    {
     private:
      bool d_gray_code;

     public:
      my_qpsk_demod_cb_impl(bool d_gray_code);
      ~my_qpsk_demod_cb_impl();
      unsigned char get_minimum_distances(const gr_complex &sample);
      // Where all the action really happens
      int work(
              int noutput_items,
              gr_vector_const_void_star &input_items,
              gr_vector_void_star &output_items
      );
    };

  } // namespace customModule
} // namespace gr

#endif /* INCLUDED_CUSTOMMODULE_MY_QPSK_DEMOD_CB_IMPL_H */
